<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<!-- -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Password Generator </title>
<meta name="Author" content="Rafi" />
<meta name="Description" content="Password Generator creates highly secure passwords with upper and lower case letters, numbers and punctuation symbols. Secured with the Secure Hash Algorithm SHA-1"/>
<meta name="Keywords" content="passwords" />
<link href='https://lh4.googleusercontent.com/-QUG_9ugltxc/Tm44wGJZtaI/AAAAAAAAAOc/V3WjudG8IHg/s800/00469bdff1ddfd9854f6507e34a1aa23_extra_animated_favicon.gif' rel='icon' type='image/gif'/>
<style type="text/css">
<!--
p, ol, ul, h1, dt, dd, table, label{font-family:Helvetica,Arial,Verdana,geneva,sans-serif; font-weight:normal; font-size:100%}
body{font-weight:normal;
 color:#000;
 background-color:#ffffff;
 /* top right bottom left*/
 margin: 20px 30px 20px 20px;}
form,li{left: 40px;}
li{line-height:1.5em;}
label{width: 5em;
 float: left;
 text-align: right;
 margin-right: 0.5em;
 margin-top: 0.1em;
 display: block}
h1{clear:both; font-size:140%}
h2{font-weight:bold; color:#000}
tr, td, .masterbox{font-family:verdana,geneva, helvetica,Sans-Serif;
font-weight:normal;
font-size:100%;}

/* links */
a:link{color:#00F; text-decoration:none}
a:visited{color:#00F; text-decoration:none}
a:visited:hover{color:#00F; text-decoration:underline}
a:hover{color:#00F; text-decoration:underline}
a:active{color:#00F}

/* classes */
.masterbox {width: 200px;}
#mp {margin-left:88px;}
.sitebox {width: 8em;}
.label{position:absolute;left: 260px;}
.pass{position:relative;left: 15px;width: 8em;}
.tagline {font-size: 12px;}
.genbtn {font-size: 14px;
         margin-left: 0.5em;}
-->
</style>

<script type="text/javascript">
//<![CDATA[
/*
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
 * in FIPS PUB 180-1
 * Version 2.1 Copyright Paul Johnston 2000 - 2002.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for details.
 */
var b64pad  = "";
var chrsz   = 8;

function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length * chrsz));}

function core_sha1(x, len)
{
  x[len >> 5] |= 0x80 << (24 - len % 32);
  x[((len + 64 >> 9) << 4) + 15] = len;

  var w = Array(80);
  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;
  var e = -1009589776;

  for(var i = 0; i < x.length; i += 16)
  {
	var olda = a;
	var oldb = b;
	var oldc = c;
	var oldd = d;
	var olde = e;

	for(var j = 0; j < 80; j++)
	{
	  if(j < 16) w[j] = x[i + j];
	  else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
	  var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), 
					   safe_add(safe_add(e, w[j]), sha1_kt(j)));
	  e = d;
	  d = c;
	  c = rol(b, 30);
	  b = a;
	  a = t;
	}

	a = safe_add(a, olda);
	b = safe_add(b, oldb);
	c = safe_add(c, oldc);
	d = safe_add(d, oldd);
	e = safe_add(e, olde);
  }
  return Array(a, b, c, d, e);

}

function sha1_ft(t, b, c, d)
{
  if(t < 20) return (b & c) | ((~b) & d);
  if(t < 40) return b ^ c ^ d;
  if(t < 60) return (b & c) | (b & d) | (c & d);
  return b ^ c ^ d;
}

function sha1_kt(t)
{
  return (t < 20) ?  1518500249 : (t < 40) ?  1859775393 :
		 (t < 60) ? -1894007588 : -899497514;
}  

function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

function rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

function str2binb(str)
{
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < str.length * chrsz; i += chrsz)
	bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);
  return bin;
}

function binb2b64(binarray)
{
  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%2b/index.html";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i += 3)
  {
	var triplet = (((binarray[i   >> 2] >> 8 * (3 -  i   %4)) & 0xFF) << 16)
				| (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 )
				|  ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
	for(var j = 0; j < 4; j++)
	{
	  if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
	  else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
	}
  }
  return str;
}		

function setvals() {
	var mypass = document.getElementById("main");

	document.getElementById("customRoot").setAttribute('value', mypass.value);
	
/*     	   Seed    masterpassword */
punchcast("amazon", mypass);
punchcast("apple", mypass);
punchcast("ebay", mypass);
punchcast("facebook", mypass);
punchcast("google", mypass);
punchcast("hotmail", mypass);
punchcast("imdb", mypass);
punchcast("linkedin", mypass);
punchcast("livejournal", mypass);
punchcast("nytimes", mypass);
punchcast("paypal", mypass);
punchcast("tumblr", mypass);
punchcast("twitter", mypass);
punchcast("wikipedia", mypass);
punchcast("wordpress", mypass);
punchcast("yahoo", mypass);
punchcast("yelp", mypass);
punchcast("youtube", mypass);
}

function highlight(field) {
       field.focus();
       field.select();
}
function punchcast(passbox,master) {
	var newpass = b64_sha1(master.value +':'+ passbox);
	newpass = newpass.substr(0,8) + '1a';
	if(master.value.length==0 || master.value==null){
		newpass = '';
		}
	document.getElementById(passbox).setAttribute('value', newpass);
}
function revealPassword(reveal) {
    if(reveal) {
        document.getElementById('main').style.display = 'none';
        document.getElementById('maintext').style.display = 'inline';
    } else {
        document.getElementById('maintext').style.display = 'none';
        document.getElementById('main').style.display = 'inline';
    }
}
function copyTo(source, destination) {
    document.m[destination].value = source.value;
}
window.onbeforeunload = function () {
   // This function stops the page being cached (so the back button won't reveal passwords).
}
// ]]>
</script>

</head>
<body onload="document.m.reset();document.ot.reset()"> 
<h1><center><u>Password Generator by <a href="http://www.edutechnology.net"> Edutechnology.Net </u></center></a></h1>
<p>&nbsp;</p>
<form name="m" id="m" action="#">
<div id="mp">
<p>Master Password<br />
<input name="main" id="main" class="masterbox" value="" onblur="setvals();" onkeyup="copyTo(this, 'maintext');" type="password" />
<input name="maintext" id="maintext" class="masterbox" value="" onblur="setvals();" onkeyup="copyTo(this, 'main');" style="display: none;" />
<input value="Generate" class="genbtn" onclick="setvals();" type="button" /> <input name="reveal" onclick="revealPassword(this.checked);" type="checkbox" /> 
Show Password</p>

</div>
</form>
<!--amazon-->
<form method="post" action="#">
<label><a href="http://www.amazon.com/">Amazon</a></label> <input name="site" class="sitebox" value="Amazon" readonly="readonly"/>
<input name="password" id="amazon" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--apple-->
<form method="post" action="#">
<label><a href="http://www.apple.com/">Apple</a></label> <input name="site" class="sitebox" value="Apple" readonly="readonly"/>
<input name="password" id="apple" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--ebay-->

<form method="post" action="#">
<label><a href="http://www.ebay.com/">ebay</a></label> <input name="site" class="sitebox" value="ebay" readonly="readonly"/>
<input name="password" id="ebay" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--facebook-->
<form method="post" action="#">
<label><a href="http://www.facebook.com/">Facebook</a></label> <input name="site" class="sitebox" value="Facebook" readonly="readonly"/>
<input name="password" id="facebook" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--google-->
<form method="post" action="#">
<label><a href="http://www.google.com/">Google</a></label> <input name="site" class="sitebox" value="Google" readonly="readonly"/>

<input name="password" id="google" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--hotmail-->
<form method="post" action="#">
<label><a href="http://www.hotmail.com/">Hotmail</a></label> <input name="site" class="sitebox" value="Hotmail" readonly="readonly"/>
<input name="password" id="hotmail" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--imdb-->
<form method="post" action="#">
<label><a href="http://www.imdb.com/">Imdb</a></label> <input name="site" class="sitebox" value="Imdb" readonly="readonly"/>
<input name="password" id="imdb" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--linkedin-->

<form method="post" action="#">
<label><a href="http://www.linkedin.com/">Linkedin</a></label> <input name="site" class="sitebox" value="linkedin" readonly="readonly"/>
<input name="password" id="linkedin" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--livejournal-->
<form method="post" action="#">
<label><a href="http://www.livejournal.com/">Livejournal</a></label> <input name="site" class="sitebox" value="Livejournal" readonly="readonly"/>
<input name="password" id="livejournal" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--nytimes-->
<form method="post" action="#">
<label><a href="http://www.nytimes.com/"> Nytimes</a></label> <input name="site" class="sitebox" value="Nytimes" readonly="readonly"/>

<input name="password" id="nytimes" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--paypal-->
<form method="post" action="#">
<label><a href="http://www.paypal.com/">Paypal</a></label>
<input name="site" class="sitebox" value="Paypal" readonly="readonly"/>
<input name="password" id="paypal" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--tumblr-->
<form method="post" action="#">
<label><a href="http://www.tumblr.com/">Tumblr</a></label> <input name="site" class="sitebox" value="Tumblr" readonly="readonly"/>
<input name="password" id="tumblr" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--twitter-->

<form method="post" action="#">
<label><a href="http://twitter.com/">Twitter</a></label> <input name="site" class="sitebox" value="Twitter" readonly="readonly"/>
<input name="password" id="twitter" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--wikipedia-->
<form method="post" action="#">
<label><a href="http://www.wikipedia.org/">Wikipedia</a></label> <input name="site" class="sitebox" value="Wikipedia" readonly="readonly"/>
<input name="password" id="wikipedia" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--wordpress-->
<form method="post" action="#">
<label><a href="http://www.wordpress.com/">Wordpress</a></label> <input name="site" class="sitebox" value="Wordpress" readonly="readonly"/>

<input name="password" id="wordpress" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--yahoo-->
<form method="post" action="#">
<label><a href="http://www.yahoo.com/">Yahoo</a></label> <input name="site" class="sitebox" value="Yahoo" readonly="readonly"/>
<input name="password" id="yahoo" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--yelp-->
<form method="post" action="#">
<label><a href="http://www.yelp.com/">Yelp</a></label> <input name="site" class="sitebox" value="Yelp" readonly="readonly"/>
<input name="password" id="yelp" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form>
<!--youtube-->

<form method="post" action="#">
<label><a href="http://www.youtube.com/">Youtube</a></label> <input name="site" class="sitebox" value="Youtube" readonly="readonly"/>
<input name="password" id="youtube" class="pass" readonly="readonly" onclick='highlight(this);'/>
</form><br />

<!--custom-->
<form method="post" action="#" name="ot" class="callout" id="ot" onsubmit="setvals();otpassword.value = b64_sha1(customRoot.value+':'+ CustomSite.value).substr(0,8) + '1a'; if(customRoot.value.length==0 || customRoot.value==null){otpassword.value = ''}; document.ot.otpassword.focus(); document.ot.otpassword.select(); return false;">
<input name="passwd" id="customRoot" type="hidden"/>
<label>Custom: </label> 
<input name="CustomSite" class="sitebox" onkeyup="otpassword.value = '';"/>
<input name="otpassword" id="otpass" class="pass" readonly="readonly" onclick='highlight(this);'/>
&nbsp;&nbsp;
<input type="submit" class="genbtn" value="Generate" />
<input type="button" class="genbtn" value="Clear All" onclick="window.location.href=window.location.href" />

</form>
<br />
<p>For More Information Visit <a href="http://www.edutechnology.net">Tech Blog</a>
</body>

</html>